Wireless communication has become increasingly important as a means of transferring information in all areas of society. Government, business and consumer markets have all benefited from the increasing sophistication and availability of wireless communication methods and devices. For example, the use of pagers, cellular telephones and wireless-capable personal digital assistants (“PDAs”) is now commonplace. Wireless communication is also used extensively in personal and business computing. Wireless communication offers networked devices flexibility unavailable to devices in a conventional physically connected network. Untethered from conventional network connections, wireless-capable network users can move almost without restriction. Medical professionals can obtain patient records, real-time vital signs and other reference data at the patient bedside without relying on paper handling or reams of paper charts. Factory floor workers can access part and process specifications without wired network connections, which may be impractical on the factory floor. Warehouse inventories may be carried out and verified using wireless scanners linked to a main database. Multimedia data may be served to various home entertainment devices within a home without a need to install cabling between all of the various home entertainment devices.
Standards for conducting wireless communications between networked devices, such as in a local area network (LAN) are known. The Institute for Electrical and Electronics Engineers (“IEEE”) offers a standard, IEEE 802.11, for multiple carrier communications over wireless LAN systems. IEEE 802.11 includes standard proposals for wireless LAN architectures. Supported architectures include an ad-hoc LAN architecture in which every communicating device (node) on the network is allowed to directly communicate with every other node. In the ad-hoc LAN architecture, there are no fixed nodes on the network and devices may be brought together to form the network “on the fly”. One method of maintaining an ad-hoc network includes defining one device as being a network master, with other devices representing network slaves. Another supported architecture is an infrastructure in which the network includes fixed network access points. Mobile devices access the network through the network access points, which may be connected to a wired local network.
IEEE 802.11 also imposes several specifications on parameters of both physical (PHY) and medium access control (MAC) layers of the network. The PHY layer handles the transmission of data between network nodes or devices and is limited by IEEE 802.11a to orthogonal frequency division multiplexing (OFDM). IEEE 802.11a utilizes the bandwidth allocated in the 5 GHz Unlicensed National Information Infrastructure (“U-NII”) band. Using OFDM, lower-speed subcarriers are combined to create a single high-speed channel. IEEE 802.11a defines a total of 12 non-overlapping 20 MHz channels. Each of the channels is divided into 64 subcarriers, each approximately 312.5 KHz wide. The subcarriers are transmitted in parallel. Receiving devices process individual signals of the subcarriers, each individual signal representing a fraction of the total data.
Other standards also exist within IEEE 802.11. For example, 802.11b limits the PHY layer to either direct sequence spread spectrum (“DSSS”), frequency-hopping spread spectrum, or infrared (“IR”) pulse position modulation. Spread spectrum is a method of transmitting data through radio frequency (“RF”) communications. Spread spectrum is a means of RF transmission in which the data sequence occupies a bandwidth in excess of the minimum bandwidth necessary to send it. Spectrum spreading is accomplished before transmission through the use of a code that is independent of the data sequence. The same code is used in the receiver (operating in synchronism with a transmitter) to de-spread the received signal so that an original data sequence may be recovered. In direct sequence spread spectrum modulation, the original data sequence is used to modulate a wide-band code. The wide-band code transforms the narrow band, original data sequence into a noise-like wide-band signal. The wide-band signal then undergoes a form of phase-shift keying (PSK) modulation. In frequency-hopping spread spectrum, the spectrum associated with a data-modulated carrier is widened by changing the carrier frequency in a pseudo-random manner.
Wireless communication devices are linked through data channels. A data channel is a frequency band used for transmitting data. Multiple carriers within a data channel may be utilized for transmitting data. Carriers are specific frequencies used to provide a set of data. Each carrier is assigned a constellation. The constellation is a map including various points identifying particular symbols used for transmitting a particular set of bits. The number of bits assigned to a point indicates a number of bits transferred per symbol received. Different carriers may be assigned unique constellations.
IEEE 802.11a and IEEE 802.11b specify a particular MAC layer technology, carrier sense multiple access with collision avoidance (CSMA-CA). CSMA is a protocol used to avoid signals colliding and canceling each other out. When a device or node on the network receives data to be transmitted, the node first “listens” to ensure no other node is transmitting. If the communications channel is clear, the node transmits the data. Otherwise, the node chooses a random “back-off factor” that determines an amount of time the node must wait until it is allowed to access the communications channel. The node decrements a “back-off” counter during periods in which the communications channel is clear. Once the back-off counter reaches zero, the node is allowed to attempt a channel access.
A radio receiver is known to include a low noise amplifier, one or more intermediate frequency stages, filters and a receiver baseband processor. The low noise amplifier amplifies radio frequency (RF) signals received via an antenna and provides the amplified RF signals to the one or more intermediate frequency stages. The one or more intermediate frequency stages mixes the amplified RF signal with one or more local oscillations to produce a receive baseband signal. The receiver baseband processor, in accordance with a particular wireless communication standard, decodes and/or demodulates the baseband signals to recapture data therefrom.
An IEEE 802.11a compliant receiver baseband processor includes analog to digital converters (ADC), fast-fourier-transform module (FFT), frequency equalization module (FEQ), a slicing module, a de-interleaving module and a decoder. The analog to digital converters receive an analog representation of the baseband signal, which for an IEEE 802.11a compliant system includes 64 sub-carriers each of which is an individual sinusoid having a unique amplitude and phase offset to represent encoded data, and converts the analog baseband signals into digital baseband signals. The resulting digital baseband signals include 64 time domain digital signals, each of which is a digital signal representing a particular amplitude and a particular phase of the corresponding analog sub-carriers. The FFT module converts the time domain digital baseband signals into frequency domain baseband signals. For an IEEE802.11a compliant system, the fast-fourier-transform module converts each of the 64 time domain sinusoidal waveforms into 64 bins of I and Q components. The frequency equalization module is programmed to filter the noise injected by the radio frequency channel into the received RF signal.
The slicing module, which may be a soft slicing module or a hard slicing module, generates symbol estimation information for each bin of I and Q components. The de-interleaving module de-interleaves the symbol estimation information, which is subsequently routed to the decoder. The decoder converts the de-interleaved symbol estimation information into branch metrics and recaptures the encoded data from the branch metrics.
In such a receiver baseband processor, the slicing module is a critical component not only from an accuracy standpoint (e.g., errors in the estimation information produces errors in the resulting data), but also from an efficiency standpoint. As is known, a hard slicing module generates error values based on Hamming distance, which indicates the number of bits that are different between the estimated symbol (i.e., the received I and Q values) and the ideal symbols (i.e., the I and Q values for each constellation point of a binary phase shift keying (BPSK) system, quadrature phase shift keying (QPSK) system, 16 QAM (quadrature amplitude modulation) system, or a 64 QAM system). Accordingly, the hard slicing module generates 2 error values for QPSK, 4 error values for 16 QAM, and 6 error values for 64 QAM modulation schemes. The decoder produces the branch metrics from the error terms using an exclusive OR function that is an increasingly iterative process as the number of error values increase.
A soft slicing module generates error terms based on a Euclidean distance, which is a physical measure of the error between the actual symbol value and each ideal symbol value. The soft slicing module generates four error terms for QPSK, 16 error terms for 16 QAM and 64 error terms for 64 QAM. As such, even though a soft slicing module generally provides a 3 dB signal-to-noise ratio improvement over a hard slicing module, it requires a significant amount of processing resources to produce the error values.
While communications standards, such as IEEE 802.11a, allow a single transmitting device to provide data to multiple receiving devices, the quality of data received by some receiving devices may be degraded. One quality of a signal is commonly measured using the signal-to-noise ratio (“SNR”) of the signal at the receiving device. Another metric to measure the quality of received data is the bit error rate (“BER”). As the SNR becomes too low for a particular data signal, the BER associated with a receiving device may be too high for the receiving device. The SNR of a signal can be affected by the distance the signal must travel (for example, SNR can be degraded if a receiving device is located too far from a data transmitter). A SNR can be dependent on the power of the transmitted signal, assuming a sufficient SNR may be output by the data transmitter. The transmission power associated with a data signal transmitted to a particular receiving device may be too low. A signal may also be degraded due to interference from other data transmitters or other RF radiators.
A receiving device with a low SNR may request data at a lower bit rate from the data transmitter. More transmission time on the data channel can become reserved for transmitting data to the receiving device with the low SNR. Accordingly, other devices may not be able to access the data channel as needed. Furthermore, a transmission data rate for a particular data channel may be inadequate for a high-bandwidth receiving device. The data channel can be configured to transmit data at a maximum data rate, such as according to the IEEE 802.11 standard, or to a maximum data rate acceptable by a particular receiving device. A high-bandwidth receiving device may require a large amount of data; however, due to limitations configured into the data channel, the required amount of data may not be accessible to the high-bandwidth receiving device using the data channel.
Wireless communication signals are thus subject to various impairments that can cause the signal at the receiver to distort or fade significantly. As a result, wireless communication systems require signal processing techniques that improve the link performance in a hostile wireless radio environment. Diversity and channel coding are two techniques that can be used independently or in tandem to improve received signal quality and link performance over small-scale times and distances.
Diversity is a technique used to compensate for fading channel impairments and is usually implemented by using two or more receiving antennas. Spatial diversity of this sort improves the quality of a wireless communication link without altering the common air interface, and without increasing the transmitted power or bandwidth. An RF communication device may be subjected to fading phenomenon that introduce distortion into the received signal. These phenomena also increase the detrimental effect of additive noise on the received signal. Diversity is usually employed to reduce the depth and duration of the fades experienced by a receiver in a local area which are due to motion. Spatial diversity is the most common diversity technique, whereby multiple antennas are strategically spaced and connected to a common receiving system.
In a typical spatial diversity system, the multiple antennas provide reception paths that are employed to receive a common source signal. Signal processing hardware and software process the individual signals on the various reception paths, commonly referred to as diversity branches. The antennas are separated by a distance sufficient to ensure that the received signals have experienced uncorrelated fading a high proportion of the time when receiving energy from all directions. This distance is typically about 0.5 times the wavelength of the received signal. The probability that the received signals on all diversity branches are simultaneously experiencing deep fading is thus significantly less than the probability that any single received signal is experiencing a deep fade. With an appropriate combining algorithm, the multiple received signals can be combined such that the resultant combined signal is consistently of higher usability than any of the individual constituent signals.
Maximum ratio (“max ratio”) combining is a well known method for combining the multiple signals in a diversity system. Max ratio combining adjusts the diversity branch signals so that they are in-phase, and weighted in proportion to their individual signal amplitude to noise power ratios, before combining the signals via summation. Max ratio combining produces an output SNR equal to the sum of the individual signal SNRs. Thus, it has the advantage of producing an output with an acceptable SNR even when none of the individual signals are themselves acceptable.
Channel coding is used to improve the small-scale link performance by adding redundant data bits in the transmitted message so that if an instantaneous fade occurs in the channel, the data may still be recovered at the receiver. At the baseband portion of the transmitter, a channel coder maps the user's digital message sequence into another specific code sequence containing a greater number of bits than originally contained in the message. The coded message is then modulated for transmission in the wireless channel.
Channel coding is used by the receiver to detect or correct some (or all) of the errors introduced by the channel in a particular sequence of message bits. Channel coding protects digital data from errors by selectively introducing redundancies in the transmitted data. Channel codes that are used to detect errors are called error detection codes, while codes that can detect and correct errors are called error correction codes. The basic purpose of error detection and error correction techniques is to introduce redundancies in the data to improve wireless link performance. The added coding bits lower the raw data transmission rate through the channel (coding expands the occupied bandwidth for a particular message data rate). This reduces the bandwidth efficiency of the link in high SNR conditions, but provides excellent BER performance at low SNR values.
There are three basic types of error detection and correction codes: block codes, convolutional codes, and turbo codes. Convolutional codes in particular are efficient at achieving a large coding gain. Coding gain is the main advantage provided by all error control codes. Coding gain describes how much better a user's decoded message performs as compared to the raw bit error performance of the coded transmission within the channel. Convolutional codes map a continuous sequence of information bits into a continuous sequence of encoder output bits.
A convolutional code is generated by passing the information sequence through a finite state shift register. In general, the shift register contains N k-bit stages and m linear algebraic function generators based on the generator polynomials as shown in FIG. 1. The input data is shifted into and along the shift register, k bits at a time. The number of output bits for each k bit user input data sequence is n bits. The code rate, RC, is given by the equation RC=k/n. The parameter N is called the constraint length and indicates the number of input data bits that the current output is dependent upon. The constraint length determines the power and complexity of the code.
Error correction codes are decoded at a receiver by a decoder. The function of the decoder is to estimate the encoded input information using a rule or method that results in the minimum possible number of errors. There is a one-to-one correspondence between the information sequence and the code sequence. Further, any information and code sequence pair is uniquely associated with a path through the encoder. A convolutional decoder thus estimates the path followed by the encoder. The most important method for decoding convolutional codes is the Viterbi algorithm. The Viterbi algorithm performs maximum likelihood decoding of a convolutional code. Maximum likelihood decoding means that the algorithm chooses the data sequence with the maximum probability of being correct (i.e., what data sequence is most likely to correspond to the actual transmitted signal).
A problem with implementing max ratio combining in a diversity receiving system, however, is that determining the weights to apply to the individual diversity branch signals requires performing various multiplication and division functions. These functions are costly and complex to implement in the receiver circuitry. Further, when combining convolutional coding with max ratio combining, the Viterbi decoder used to decode the convolutional code requires taking the log of the determined error codes. Prior art methods that implement max ratio combining in tandem with convolutional decoding by means of the Viterbi algorithm thus require performing complex multiplication functions when combining the received diversity signals, and further require converting the determined error codes into the log domain to perform the Viterbi decoding. These prior art methods are therefore redundant, complex and costly to implement.
Therefore, a need exists for a method and apparatus for signal decoding in a diversity reception system with maximum ratio combining that can reduce or eliminate the problems associated with the prior art.